Stream API是在JAVA 8引入的一個工具,用來處理集合數據,讓代碼更加簡潔易維護,而Stream pipeline是Stream API中的核心概念。Stream本身是不可變的,每次操作都會返回一個新的Stream,並且不會修改原來的Stream。
Stream pipeline包含三個部分,
源(source)是pipeline的起點,通常是一個集合、數組、或生成器,這些東西會被轉換成一個Stream。
中間操作(intermediate operations)會接受一個Stream並返回一個新的Stream,這裡的操作通常是惰性的,也就是不會直接執行,只有終端操作使用的時候才會實際執行,像是filter、map、sorted等都是常見的中間操作。
終端操作(terminal operations)會觸發Stream Pipeline的執行,使用Stream 並生成一個結果,終端操作後Stream就會被關閉,不能再使用。collect、forEach、reduce等都是常見的終端操作。
舉例如何過濾、轉換並收集結果
List myList = Arrays.asList("apple","banana","cherry","avocado","orange","grape");
List result = myList.stream()
filter(s -> s.startsWith("a")) //先過濾出a開頭的字串
map(String::toUpperCase) //將字串轉換為大寫
sorted() //排序
collect(Collectors.toList()); //收集結果
System.out.println(result); //輸出結果[APPLE,AVOCADO]